package gptma.bo.dao.task;

import gptma.bo.dao.GenericDao;
import gptma.bo.model.task.Task;
import gptma.bo.model.task.TaskHistoryElement;
import gptma.bo.search.TaskSearchCriteria;

import java.util.Date;
import java.util.List;

public interface TaskDao extends GenericDao<Task, Long> {

	List<Task> findAll(boolean admin);

	List<Task> findNonAttached();

	List<Task> findNonAssigned();

	List<Task> findByCriteria(TaskSearchCriteria criteria);

	int findMaxPriority();

	boolean findExistingCode(String code);

	TaskHistoryElement findCurrentState(Task task);

	float findConsolidatedCharge(Task task, Date date);
}
